package net.suplementos.web.action;

import net.suplementos.negocio.FinanceiroDelegate;
import net.suplementos.pojo.Estorno;
import net.suplementos.pojo.Venda;
import net.suplementos.servico.FinanceiroServico;
import net.suplementos.web.LocalConstantes;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

@Namespace("/estornarVenda")
@InterceptorRefs({
	@InterceptorRef(value = "store", params = {"operationMode", "AUTOMATIC"}),
	@InterceptorRef("defaultStack")
})
public class EstornarValorAction extends ActionSupport {
	
	private Venda venda;
	private Estorno estorno;

	private FinanceiroServico financeiroServico = FinanceiroDelegate.getInstance();

	@Action(value = "abrirEstornar", results = {
		@Result(name = SUCCESS, location = LocalConstantes.LOCAL_JSP_FINANCEIRO_ESTORNAR_VENDA + "/estornar.jsp")
	})
	public String abrirEstornar() throws Exception {
		return SUCCESS;
	}

	@Action(value = "estornar", results = {
		@Result(name = SUCCESS, params = {"actionName", "consultar", "namespace", "/consultarVendas"}, type = "redirectAction")
	})
	public String estornar() throws Exception {
		addActionMessage(getText("estorno.mensagem.sucesso"));
		financeiroServico.estornarVenda(venda);
		return SUCCESS;
	}

	public Venda getVenda() {
		return venda;
	}

	public void setVenda(Venda venda) {
		this.venda = venda;
	}

	public Estorno getEstorno() {
		return estorno;
	}

	public void setEstorno(Estorno estorno) {
		this.estorno = estorno;
	}

	public FinanceiroServico getFinanceiroServico() {
		return financeiroServico;
	}

	public void setFinanceiroServico(FinanceiroServico financeiroServico) {
		this.financeiroServico = financeiroServico;
	}
}